package moc.egg;
import moc.compiler.*;
import moc.tds.*;
import moc.type.*;
import moc.gc.*;
import java.util.*;
import moc.type.object.*;
import mg.egg.eggc.runtime.libjava.lex.*;
import mg.egg.eggc.runtime.libjava.*;
import mg.egg.eggc.runtime.libjava.messages.*;
import mg.egg.eggc.runtime.libjava.problem.IProblem;
import java.util.Vector;
public class S_ARGS_MOC {
LEX_MOC scanner;
  S_ARGS_MOC() {
    }
  S_ARGS_MOC(LEX_MOC scanner, boolean eval) {
    this.scanner = scanner;
    this.att_eval = eval;
    this.att_scanner = scanner;
    }
int [] sync= new int[0];
  String att_myclass;
  boolean att_eval;
  int att_taille;
  String att_code;
  DTYPELIST att_signatureAppel;
  IMachine att_machine;
  TDS att_tds;
  LEX_MOC att_scanner;
  private void regle71() throws Exception {

    //declaration
    S_E_MOC x_3 = new S_E_MOC(scanner,att_eval) ;
    S_ARGSX_MOC x_4 = new S_ARGSX_MOC(scanner,att_eval) ;
    //appel
if  (att_eval)      action_auto_inh_71(x_3, x_4);
if  (att_eval)      action_sens_71(x_3, x_4);
    x_3.analyser() ;
    x_4.analyser() ;
if  (att_eval)      action_sig_71(x_3, x_4);
  }
  private void regle70() throws Exception {

    //declaration
    //appel
if  (att_eval)      action_sig_70();
  }
private void action_sens_71(S_E_MOC x_3, S_ARGSX_MOC x_4) throws Exception {
try {
// instructions
x_3.att_inconstructor=false;
x_3.att_gauche=false;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#sens","ARGS -> #sens E ARGSX #sig ;"});
}
  }
private void action_sig_70() throws Exception {
try {
// instructions
this.att_signatureAppel= new DTYPELIST();
this.att_code="";
this.att_taille=0;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#sig","ARGS -> #sig ;"});
}
  }
private void action_auto_inh_71(S_E_MOC x_3, S_ARGSX_MOC x_4) throws Exception {
try {
// instructions
x_3.att_tds=this.att_tds;
x_4.att_tds=this.att_tds;
x_3.att_myclass=this.att_myclass;
x_4.att_myclass=this.att_myclass;
x_3.att_machine=this.att_machine;
x_4.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","ARGS -> #sens E ARGSX #sig ;"});
}
  }
private void action_sig_71(S_E_MOC x_3, S_ARGSX_MOC x_4) throws Exception {
try {
// instructions
x_4.att_signatureAppel.add(0, x_3.att_type);
this.att_signatureAppel=x_4.att_signatureAppel;
this.att_code=x_4.att_code+x_3.att_code;
this.att_taille=x_3.att_type.getTaille()+x_4.att_taille;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#sig","ARGS -> #sens E ARGSX #sig ;"});
}
  }
  public void analyser () throws Exception {
    scanner.lit ( 1 ) ;
    switch ( scanner.fenetre[0].code ) {
      case LEX_MOC.token_parf : // 230
        regle70 () ;
      break ;
      case LEX_MOC.token_entier : // 274
        regle71 () ;
      break ;
      case LEX_MOC.token_chaine : // 276
        regle71 () ;
      break ;
      case LEX_MOC.token_caractere : // 275
        regle71 () ;
      break ;
      case LEX_MOC.token_plus : // 252
        regle71 () ;
      break ;
      case LEX_MOC.token_moins : // 253
        regle71 () ;
      break ;
      case LEX_MOC.token_non : // 259
        regle71 () ;
      break ;
      case LEX_MOC.token_null : // 244
        regle71 () ;
      break ;
      case LEX_MOC.token_paro : // 229
        regle71 () ;
      break ;
      case LEX_MOC.token_ident : // 277
        regle71 () ;
      break ;
      case LEX_MOC.token_mult : // 255
        regle71 () ;
      break ;
      case LEX_MOC.token_new : // 260
        regle71 () ;
      break ;
      case LEX_MOC.token_taille : // 262
        regle71 () ;
      break ;
      case LEX_MOC.token_nil : // 245
        regle71 () ;
      break ;
      case LEX_MOC.token_yes : // 272
        regle71 () ;
      break ;
      case LEX_MOC.token_no : // 273
        regle71 () ;
      break ;
      case LEX_MOC.token_self : // 269
        regle71 () ;
      break ;
      case LEX_MOC.token_super : // 271
        regle71 () ;
      break ;
      case LEX_MOC.token_cro : // 264
        regle71 () ;
      break ;
      case LEX_MOC.token_libere : // 261
        regle71 () ;
      break ;
      default :
               scanner._interrompre(IProblem.Syntax, scanner.getBeginLine(), IMOCMessages.id_MOC_unexpected_token,MOCMessages.MOC_unexpected_token,new String[]{scanner.fenetre[0].getNom()});
    }
  }
  }
